package com.ruoyi.sports.service;

import java.util.List;
import com.ruoyi.sports.domain.Application;
import com.ruoyi.sports.domain.vo.ApplicationVO;
import com.ruoyi.sports.domain.vo.EventVO;

/**
 * 报名参赛记录Service接口
 * 
 * @author ruoyi
 * @date 2023-03-08
 */
public interface IApplicationService 
{
    /**
     * 查询报名参赛记录
     * 
     * @param applicationId 报名参赛记录主键
     * @return 报名参赛记录
     */
    public ApplicationVO selectApplicationByApplicationId(Long applicationId);

    /**
     * 查询报名参赛记录列表
     * 
     * @param application 报名参赛记录
     * @return 报名参赛记录集合
     */
    public List<Application> selectApplicationList(Application application);

    /**
     * 新增报名参赛记录
     * 
     * @param application 报名参赛记录
     * @return 结果
     */
    public int insertApplication(Application application);

    /**
     * 修改报名参赛记录
     * 
     * @param application 报名参赛记录
     * @return 结果
     */
    public int updateApplication(ApplicationVO application);

    /**
     * 批量删除报名参赛记录
     * 
     * @param applicationIds 需要删除的报名参赛记录主键集合
     * @return 结果
     */
    public int deleteApplicationByApplicationIds(Long[] applicationIds);

    /**
     * 删除报名参赛记录信息
     * 
     * @param applicationId 报名参赛记录主键
     * @return 结果
     */
    public int deleteApplicationByApplicationId(Long applicationId);

    /**
     * 用户报名参赛
     *
     * @param event
     * @return
     */
    public int enroll(EventVO event);

    List<ApplicationVO> selectMyApplicationList(Application application);

    int cancelApplicationByApplicationId(Long applicationId);
}
